<?php

/** @noinspection PhpMissingFieldTypeInspection */

/** @noinspection PhpMissingParamTypeInspection */
/** @noinspection PhpMissingDocCommentInspection */

namespace DreamCat\Array2Class\Demo;

use DreamCat\Array2Class\Demo\Inner\Status;
use Dreamcat\PropertyAnalysis\Annotation\ArrayDescAnno;
use Dreamcat\PropertyAnalysis\Pojo\BuildinType;

/**
 * 测试用的示例类2
 * @author vijay
 */
class Pojo2
{
    use SimpleBuilder;

    private ?int $int;
    /** @var string[] */
    #[ArrayDescAnno(BuildinType::STRING, false)]
    private ?array $ary;
    private $call = null;

    private ?Status $status;

    private ?Status $allNullStatus;

    public function setCall(callable $call): static
    {
        $this->call = $call;
        return $this;
    }

    public function getCall(): mixed
    {
        return $this->call;
    }

    public function setInt(int $int): static
    {
        $this->int = $int;
        return $this;
    }

    /**
     * @param string[] $ary -
     * @return $this
     */
    public function setAry(array $ary): static
    {
        $this->ary = $ary;
        return $this;
    }
}

# end of file
